package com.lei.dao;

import com.lei.entity.Dept;
import com.lei.util.PageBean;

import java.util.List;

/**
 * @author Lei Chu
 * @Date 2020/10/16 21:25
 */
public interface DeptDao {

    /**
     * 功能描述:分页查找所有部门
     * @param pageBean 分页工具类
     */
    void selectAllDept(PageBean<Dept> pageBean);

    /**
     * 功能描述:检测新增部门的时候，部门名称是否重复
     * @param dname 部门名称
     * @return int
     */
    int findIDDeptByName(String dname);

    /**
     * 功能描述:添加一个部门
     * @param dept Dept
     * @return int
     */
    int addDept(Dept dept);

    /**
     * 功能描述:通过Id分页查找所有的部门
     * @param page PageBean
     * @return void
     */
    void selectAllDeptById(PageBean page);

    /**
     * 功能描述:通过Name分页查找所有的部门
     * @param page PageBean
     * @return void
     */
    void selectAllDeptByName(PageBean page);

    /**
     * 功能描述:查找最后的部门编号 ， 用于添加部门时候的 编号生成
     * @return int
     */
    int selectLastDeptNo();
    
    /**
     * 功能描述:修改部门信息
     * @param dept Dept
     * @return int 
     */
    int updateDept(Dept dept);

    /**
     * 功能描述:得到所有的dept的名字和id用于添加员工的下拉框生成
     * @return java.util.List<com.lei.entity.Dept>
     */
    List<Dept> getAllDept();

    /**
     * 功能描述:删除部门
     * @param deptid ID
     * @return int
     */
    int deleteDept(int deptid);

    /**
     * 功能描述:修改部门状态
     * @param deptid 部门Id
     * @param status 部门状态
     * @return int
     */
    int updateDeptStatus(int deptid, int status);
}
